物件导出 物件导出 · Export Objects to File

将 Grasshopper 中的几何物件按分支批量导出为 .3dm / .dwg / .stp 文件
📂 LK → File Management 📄 ExportObjectsToFile.cs 🔘 按钮触发 📋 右键选格式

📖 功能概述

一个强大的批量文件导出组件,可将 Grasshopper 中的几何物件导出为 .3dm(Rhino 原生)、.dwg(AutoCAD)或 .stp(STEP 通用三维数据)格式。

📥 输入参数

名称类型必填说明
Geometry (G) Tree 必需 要导出的物件(树形结构)。支持几何体、TextEntity 文字对象、GH_Guid 文档引用。每个分支对应一个文件
PathWithName (P) Tree 必需 输出文件路径(不含扩展名)。扩展名由右键选择的格式自动追加。树形结构需与 Geometry 树的分支数量一致。
Layer (L) Tree 可选 烘焙时指定的图层名称。支持树形结构,每个分支可指定不同的图层。不连接时自动以 ExportedGeo::{分支路径}ExportedText::{分支路径} 命名图层。
Start (S) Boolean 必需 触发开关。设为 True点击组件按钮 时执行导出。默认 False

📤 输出参数

名称类型说明
无输出参数 组件直接将几何写入文件,不返回数据。执行结果通过 Grasshopper 的消息区(Remark / Error)反馈。

📋 右键菜单 — 格式选择

组件继承自 RightClick_BoolButtonComponent,右键点击组件可弹出菜单:

.3dm
Rhino 原生格式
.dwg
AutoCAD 格式
.stp
STEP 通用格式
💡 切换说明:右键菜单中 Lts 属性定义了三种可选格式。切换后扩展名自动应用到所有输出文件路径,无需更改连线。

⚙️ 执行流程

1
触发导出
2
同步数据树
图层树
3
遍历分支
烘焙几何
4
选中 + 缩放
+ 导出命令
5
清理临时
烘焙对象

🔍 各阶段详解

1️⃣ 触发条件

S 输入为 True组件按钮被点击(ButtonActivate)时,开始执行导出流程。两者是「或」关系。

2️⃣ 图层与路径同步

组件接收三个数据树输入(Geometry、Path、Layer),其中 Path 和 Layer 树需要与 Geometry 树保持相同拓扑结构:

3️⃣ 几何烘焙与选择集构建

遍历 Geometry 树的每个分支,对每种数据类型分别处理:

数据类型处理方式
IGH_GeometricGoo(参照几何) 直接使用 ReferenceID 加入选择集,无需烘焙
IGH_GeometricGoo(非参照几何) 转换为 GeometryBase 后烘焙到 Rhino 文档,记录 GUID 到清理列表
GH_Guid 直接使用 GUID 值引用文档中的物件
TextEntity / TextObject 烘焙到文字图层(TextLayer),记录 GUID 到清理列表

4️⃣ 执行 Rhino 导出命令

对于每个分支:

  1. 清空当前选择,选中该分支的所有物件
  2. 缩放至选中对象(便于导出命令)
  3. 通过 RhinoApp.RunScript 执行 -Export 命令
  4. 等待命令执行完毕

5️⃣ 自动清理

所有临时烘焙的对象(包括几何和文字)在 finally 块中统一删除,确保 Rhino 文档在导出前后状态一致,不留残余。

✅ 性能优化:整个导出过程会临时禁用视图刷新RedrawEnabled = false),大幅提升批量导出时的性能。

🧪 典型使用场景

场景说明
批量导出单元体 将多个幕墙单元体按分支组织,每个分支导出一个独立的 .stp 或 .3dm 文件,用于加工或交接。
导出 DWG 加工图 将每个加工件的展开几何导出为单独的 .dwg 文件,配合指定的图层名称,直接用于 AutoCAD 加工图。
数据交换 将 Grasshopper 中计算出的结果导出为通用格式(.stp),供 SolidWorks、CATIA 等软件使用。

⚠️ 注意事项

📋 组件信息

名称物件导出
英文名Export Objects to File
分类LK → File Management
按钮文字导出
基类RightClick_BoolButtonComponent
GUID{619FE7B7-3D88-4BC5-835B-CFFD3E58D8AF}